// 后端端口及api路由配置 server主文件
const userApi = require('./api/userApi');
const homeApi = require('./api/homeApi');
var JwtUtil = require('./jwt');
// const fs = require('fs');
// const path = require('path');
// body-parser是非常常用的一个express中间件，作用是对http请求体进行解析
const bodyParser = require('body-parser');
// express框架
const express = require('express');
const app = express();
// 获取req.body参数的处理
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
// 限制文件大小
app.use(bodyParser.json({ limit: '50mb' }));
// 限制前端POST请求方式上传数据的大小
app.use(bodyParser.urlencoded({ limit: '50mb', extended: true }));
// 中间件处理
app.use(function (req, res, next) {
    if (req.url != '/user/login' && req.url != '/user/register') {
        let token = req.headers.token;
        let jwt = new JwtUtil(token);
        let result = jwt.verifyToken();
        // 如果考验通过就next，否则就返回登陆信息不正确
        if (result == 'err') {
            console.log(result);
            res.send({ status: 403, msg: '登录已过期,请重新登录' });
            // res.render('login.html');
        } else {
            next();
        }
    } else {
        next();
    }
});

// Error handling middle-ware

app.use(function (err, req, res, next) {
    console.log("发生错误", err.stack);
});

// 后端api路由
app.use('/user', userApi);
app.use('/home', homeApi)
// 监听端口
app.listen(3000);
console.log('服务启动成功，端口3000');